home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
E-Education
/
(c)ed19.d64
/
checkers
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
3KB
|
118 lines
10 PRINT"[147] CHECKERS "
15 PRINT"*FIRST ENTER COLUMN [146] THEN ROW [146] NUMBERS"
20 PRINT"*WHEN JUMPING PRESS RETURN [146]":PRINT:PRINT
21 PRINT"*TO PLAY, PRESS SPACE [146]";B$
22 GETB$:IFB$=""THEN22
100 DIMX(4),S(7,7):G=-1:X(0)=-99:PRINT"[144][147]"
101 SYS65517:IFPEEK(781)=40THEN103
102 POKE36879,59:GOTO110
103 POKE53280,3:POKE53281,3
110 DATA1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15
120 A$=" ":B$=""
130 FORX=0TO7:FORY=0TO7:READJ:IFJ=15THEN150
140 S(X,Y)=J:GOTO160
150 RESTORE:READS(X,Y)
160 NEXTY,X:PRINT"[147]";
170 FORX=0TO7:FORY=0TO7:IFS(X,Y)>-1THEN200
180 IFS(X,Y)=-1THENFORA=-1TO1STEP2:B=G:GOSUB210:NEXTA
190 IFS(X,Y)=-2THENFORA=-1TO1STEP2:FORB=-1TO1STEP2:GOSUB210:NEXTB,A
200 NEXTY,X:GOTO370
210 U=X+A:V=Y+B:IFU<0ORU>7ORV<0ORV>7THEN260
220 IFS(U,V)=0THENGOSUB270:GOTO260
230 IFS(U,V)<0THEN260
240 U=U+A:V=V+B:IFU<0ORV<0ORU>7ORV>7THEN260
250 IFS(U,V)=0THENGOSUB270
260 RETURN
270 IFV=0ANDS(X,Y)=-1THENQ=Q+2
280 IFABS(Y-V)=2THENQ=Q+5
290 IFY=7THENQ=Q-2
300 IFY=0ORU=7THENQ=Q+1
310 FORC=-1TO1STEP2:IFU+C<0ORU+C>7ORV+G<0THEN350
320 IFS(U+C,V+G)<0THENQ=Q+1:GOTO350
330 IFU-C<0ORU-C>7ORV-G>7THEN350
340 IFS(U+C,V+G)>0AND(S(U-C,V-G)=0OR(U-C=XANDV-G=Y))THENQ=Q-2
350 NEXTC:IFQ>X(0)THENX(0)=Q:X(1)=X:X(2)=Y:X(3)=U:X(4)=V
360 Q=0:RETURN
370 IFX(0)=-99THEN1040
380 GOSUB1060:PRINT"ME"X(1);","X(2)"TO"X(3)","X(4):X(0)=-99
390 FORXX=1TO400:NEXTXX
400 IFX(4)=0THENS(X(3),X(4))=-2:GOTO420
410 S(X(3),X(4))=S(X(1),X(2))
420 S(X(1),X(2))=0:IFABS(X(1)-X(3))<>2THEN510
430 S((X(1)+X(3))/2,(X(2)+X(4))/2)=0
440 X=X(3):Y=X(4):IFS(X,Y)=-1THENB=-2:FORA=-2TO2STEP4:GOSUB480
450 IFS(X,Y)=-2THENFORA=-2TO2STEP4:FORB=-2TO2STEP4:GOSUB480:NEXTB
460 NEXTA:IFX(0)<>-99THENPRINT"TO"X(3)","X(4);:X(0)=-99:GOTO400
470 GOTO510
480 U=X+A:V=Y+B:IFU<0ORU>7ORV<0ORV>7THEN500
490 IFS(U,V)=0ANDS(X+A/2,Y+B/2)>0THENGOSUB270
500 RETURN
505 FORI=1TO25:PRINT:NEXT
510 PRINT"[144] ROW":PRINT"[144] [172][162][162][162][162][162][162][162][162][187]":FORY=7TO0STEP-1:PRINTY;"[157][161][146]";:FORX=0TO7
520 IFS(X,Y)=0THENIF(X+Y)/2=INT((X+Y)/2)THENPRINT" [146]";:GOTO580
530 IFS(X,Y)=0THENPRINT" ";
540 IFS(X,Y)=1THENPRINT"[209][146]";:GOTO580
550 IFS(X,Y)=-1THENPRINT"[215][146]";:GOTO580
560 IFS(X,Y)=-2THENPRINT"*";:GOTO580
570 IFS(X,Y)=2THENPRINT"*[146]";
580 NEXTX:PRINT"[161]":NEXTY:PRINT" [188][162][162][162][162][162][162][162][162][146][190]":PRINT" 01234567 COL"
590 GOSUB1060:PRINT"FROM";
600 GETG$:IFG$=""THEN600
610 IFG$<"0"ORG$>"7"THEN590
620 E=VAL(G$):PRINTE;",";
630 GETG$:IFG$=""THEN630
640 IFG$<"0"ORG$>"7"THEN590
650 H=VAL(G$):PRINTH
660 X=E:Y=H:IFS(X,Y)<=0THEN590
670 PRINT"TO";
680 GETG$:IFG$=""THEN680
690 IFG$<"0"ORG$>"7"THEN670
700 A=VAL(G$):PRINTA;",";
710 GETG$:IFG$=""THEN710
720 IFG$<"0"ORG$>"7"THEN670
730 B=VAL(G$):PRINTB
740 X=A:Y=B
750 IFS(X,Y)=0ANDABS(A-E)<=2ANDABS(A-E)=ABS(B-H)THEN770
760 GOTO590
770 I=46
780 S(A,B)=S(E,H):S(E,H)=0:IFABS(E-A)<>2THEN910
790 S((E+A)/2,(H+B)/2)=0
800 PRINT"+TO";
810 GETG$:IFG$=""THEN810
820 IFG$=CHR$(13)THEN910
830 IFG$<"0"ORG$>"7"THEN810
840 A1=VAL(G$):PRINTA1;",";
850 GETG$:IFG$=""THEN850
860 IFG$=CHR$(13)THEN910
870 IFG$<"0"ORG$>"7"THEN850
880 B1=VAL(G$):PRINTB1
890 IFS(A1,B1)<>0ORABS(A1-A)<>2ORABS(B1-B)<>2THEN800
900 E=A:H=B:A=A1:B=B1:I=I+15:GOTO780
910 IFB=7THENS(A,B)=2
920 PRINT"01234567 COL"
930 PRINT"[145][145] [188][162][162][162][162][162][162][162][162][146][190][145][145]"
940 FORY=0TO7:PRINTY;"[157][161][146]";:FORX=0TO7
950 IFS(X,Y)=0THENIF(X+Y)/2=INT((X+Y)/2)THENPRINT" [146]";:GOTO1010
960 IFS(X,Y)=0THENPRINT" ";:GOTO1010
970 IFS(X,Y)=1THENPRINT"[209][146]";:GOTO1010
980 IFS(X,Y)=-1THENPRINT"[215][146]";:GOTO1010
990 IFS(X,Y)=-2THENPRINT"*";:GOTO1010
1000 IFS(X,Y)=2THENPRINT"*[146]";
1010 NEXTX:PRINT"[161][145][145]":NEXTY
1020 PRINT" ROW":PRINT" [172][162][162][162][162][162][162][162][162][187][145][145]"
1030 GOTO170
1040 GOSUB1060:FORI=1TO40:PRINT"[218]";:FORJ=1TO50:NEXT:NEXT
1050 PRINT" YOU WIN ! [146]":GOTO1100
1060 PRINTB$
1070 FORXX=1TO8:PRINTA$:NEXTXX:PRINTB$:RETURN
1100 PRINT"[147] YOU HAVE A CHOICE:
1110 [153]" PRESS P WAIT TO PLAY AGAIN
1120 PRINT" PRESS M [146] TO RETURN TO MENU
1130 [161]R$:[139]R$[179][177]"P"[175]R$[179][177]"M"[167]1130
1140 [139]R$[178]"P"[167] 10
1150 [153]"LOAD RETURNING TO THE DISK MENU
1160 LOAD"MENU",8
1170 RUN
1180 END
1190 REM WHC 91:01:05